# 设计提示的通用技巧

以下是设计提示时需要牢记的一些技巧：

### 从简单开始
在开始设计提示时，需要谨记这是一个需要反复试验以获得最佳结果的迭代过程。在类似 OpenAI 或 Cohere 等简单的游乐场中开始是一个不错的起点。

您可以从简单的提示开始，并随着努力获得更好的结果，逐渐增加元素和上下文。为此，在途中不断进行版本更新很重要。在阅读本指南时，您会发现，特定性、简洁性和简洁性通常会为您提供更好的结果。

当您有一个包含许多不同子任务的大型任务时，可以尝试将任务拆分为更简单的子任务，并随着获得更好的结果不断增加复杂度。这避免了在提示设计过程中一开始就添加过多的复杂度。

### 指令
通过使用命令来指示模型您想要实现的任务，例如“编写”、“分类”、“摘要”、“翻译”、“排序”等，可以为各种简单任务设计有效的提示。

请记住，为了找到最佳解决方案，您还需要进行大量尝试。尝试不同的指令、关键字、上下文和数据，以了解对于您特定的用例和任务，哪种方法最有效。通常，上下文对于您要执行的任务越具体和相关，结果就越好。接下来的指南中，我们将介绍采样和添加更多上下文的重要性。

其他人建议在提示开头放置指令。建议使用一些清晰的分隔符，例如“###”，来分隔指令和上下文。

例如:

*提示：*
```
### Instruction ###
将以下文本翻译为西班牙语：

Text: "hello!"
```

*输出：*
```
¡Hola!
```

### 特定性
格式：仅返回已翻译内容，不包括原文。请在指令和您想要模型执行的任务方面非常具体。提示越具体和详细，结果就越好。当您希望实现特定的生成结果或风格时，这一点尤为重要。没有特定的标记或关键词会导致更好的结果。拥有良好的格式和详细的提示更加重要。事实上，在提示中提供示例非常有效，可以获得特定格式的所需输出。

在设计提示时，您还应考虑提示的长度，因为其长度是有限制的。考虑提示应该有多具体和详细是需要考虑的事情。包含过多不必要的细节不一定是一个好策略。这些细节应与任务相关且对任务有帮助。这是需要进行大量实验的事情。我们鼓励大量实验和迭代，以优化提示以适用于您的应用。

作为示例，让我们尝试从一段文本中提取特定信息的简单提示。

*提示：*
```
提取以下文本中的地名。

期望格式：
Place: <逗号分隔的公司名称列表>

输入文本：“虽然这些开发对研究人员很有鼓舞，但许多事情仍然是一个谜。里斯本Champalimaud未知中心的神经免疫学家Henrique Veiga-Fernandes表示：“我们经常在大脑和我们在周围看到的效果之间有一个黑盒子。如果我们想要在治疗背景下使用它，我们实际上需要了解机制。”

```

*输出结果:*
```
地点: Champalimaud Center for the Unknown, Lisbon
```

输入文本取自[Nature文章](https://www.nature.com/articles/d41586-023-00509-z)。

### 避免不精确。鉴于上述关于详细说明和改善格式的提示，很容易陷入希望在提示方面变得太聪明并可能创建不精确描述的陷阱。直接和明确往往更好。这里的类比与有效沟通非常相似-越直接，信息传达也就越有效。

例如，您可能想了解提示工程的概念。您可以尝试以下内容：

```
说明提示工程的概念。保持解释简短，只有几个句子，不要过于描述。
```

从上面的提示中不清楚使用多少句子和什么样的风格。您可能会收到上述提示的良好响应，但更好的提示是一个非常具体，简洁并直接的提示。像这样：

```
使用2-3句话向高中生解释提示工程的概念。
```

### 做或不做？
设计提示时另一个常见的提示是避免表达不做什么，而是表达替代方案。这鼓励更具体化并且专注于细节，这会导致模型给出好的回答。

下面是一个电影推荐聊天机器人的示例，正好因为我的指示方式-专注于什么不做而失败。

*提示：*
```
以下是向客户推荐电影的智能体。不要询问兴趣爱好。不要询问个人信息。

客户：请推荐一部基于我的兴趣的电影。
智能体：
```

*输出：*
```
当然，我可以推荐一个基于您的兴趣爱好的电影。您想看什么类型的电影？您更喜欢动作片、喜剧片、爱情片还是其他类型的电影？
```

这是更好的提示：

*提示：*
```".以下是一款向客户推荐电影的代理软件。代理软件应该负责从全球最热门的电影中推荐一部电影。它应该避免询问用户的喜好并且不应该要求个人信息。如果代理软件没有电影推荐，它应该回复“对不起，今天找不到电影推荐”。

客户: 基于我的兴趣，请推荐一部电影。
代理软件：

```

*输出：*
```
抱歉，我没有关于您兴趣的任何信息。然而，这是目前最热门的电影清单：[电影清单]。希望您会喜欢！
```

以上一些示例来自“[最佳实践与 OpenAI API 的提示工程](https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api)”。